# coding:utf-8
# author    : ['王稣胤 820390693@qq.com', ]
# data      : 2020/3/13 15:20
# software  : PyCharm
# python    : '3.5.3 64bit'
# file      : common.py
"""
说明文档：

"""
import hashlib
import time
import os
import jwt


def current_time_str(fmt = '%Y-%m-%d_%H-%M-%S'):
    return time.strftime(fmt, time.localtime())


def new_filename(dir_path, filename):
    new_name = filename
    i =2
    while True:
        if new_name not in os.listdir(dir_path):
            break
        new_name = '{}.{}{}'.format(os.path.splitext(filename)[0], i, os.path.splitext(filename)[1])
        i += 1
    return new_name


def decode_if_bytearray(value):
    return value.decode() if isinstance(value, bytearray) else value


def decode_if_bytes(value):
    return value.decode() if isinstance(value, bytes) else value


def md5hex(str_obj):
    """
    MD5加密算法，返回32位小写16进制符号（字符串）
    """
    m = hashlib.md5()
    m.update(str_obj.encode())
    return m.hexdigest()


def jwt_encode(username, exp_delta, secret_key ):


    payload = {
        'exp': time.time() + exp_delta,  # 过期时间 #不要用datetime 差了30000秒
        'iat': time.time(),  # 开始时间
        'iss': 'wsy',  # 签名
        'data': {  # 内容，一般存放该用户id和开始时间
            'username':username,
        },
    }

    str = jwt.encode(payload, secret_key, algorithm = 'HS256').decode()  # 加密生成字符串
    return str
def jwt_decode(token, secret_key):
    dict_ = jwt.decode(token, secret_key, algorithms = ['HS256'])  # 解密，校验签名
    return dict_